package com.fhsk.file.business.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.fhsk.file.business.entity.bo.user.UserBo;
import com.fhsk.file.business.entity.bo.user.UserConditionBo;
import com.fhsk.file.business.entity.dto.user.UserDto;
import com.fhsk.file.business.entity.vo.user.UserVo;
import com.fhsk.file.common.vo.AjaxResult;

import java.util.Map;

/**
 * <p>
 * 用户信息 服务类
 * </p>
 *
 * @author AlienWare
 * @since 2022-06-02
 */
public interface IUserService extends IService<UserDto> {

    /**
     * 后台登录
     *
     * @param user
     * @return
     */
    UserVo login(UserBo user);

    Map<String, Object> list(UserConditionBo condition);

    AjaxResult addUser(UserBo userBo);

    UserVo getDetail(UserBo user);

    AjaxResult updateUser(UserBo userBo);

    /**
     * 检验当前用户登录 是否依然使用初始密码
     *
     * @param userAccount
     * @param password
     * @return
     */
    Boolean checkIsInit(String userAccount, String password);

    /**
     * 获取当前用户
     *
     * @return
     */
    UserVo getCurrentUser();

    /**
     * 修改密码
     *
     * @param account
     * @param oldPassword
     * @param password
     * @return
     */
    Boolean changePassword(String account, String oldPassword, String password);

    /**
     * 重置密码
     *
     * @param userOid
     * @return
     */
    AjaxResult resetPassword(String userOid);

    /**
     * 初始化密码
     */
    void initPassword();

}
